public class Rational {
  int numerator = 1;//分子
  int denominator = 1;//分母
  void setNumerator(int a) {		//设置分子
    int c=f(Math.abs(a),denominator);//计算最大公约数
    numerator = a/c;
    denominator = denominator/c;
    if(numerator<0&&denominator<0) {
      numerator = -numerator;
      denominator = --denominator;
  }
 }
  void setDenominator(int b) {		//设置分母
    int c=f(numerator,Math.abs(b));//计算最大公约数
    numerator = numerator/c;
    denominator = b/c;
    if(numerator<0&&denominator<0) {
      numerator = -numerator;
      denominator = --denominator;
  }
 }
  int getNumerator() {
    return numerator;
 }
  int getDenominator() {
    return denominator;
 }
  int f(int a,int b) {	//求a和b的最大公约数
    if(a==0) 
      return 1;
    if(a<b) {
      int c=a;
      a=b;
      b=c;
  }
  int r=a%b;
  while(r!=0){
      a = b;
      b = r;
      r = a%b;
  }
    return b;
  }
  Rational add(Rational r) {	//加法运算
    int a = r.getNumerator();	//返回有理数r的分子
    int b = r.getDenominator();	//返回有理数r的分母
    int newNumerator = numerator*b+denominator*a;	//计算出新分子
    int newDenominator = denominator*b;		//计算出新分母
    Rational result = new Rational();
    result.setNumerator(newNumerator);
    result.setDenominator(newDenominator);
    return result;
  }
  Rational sub(Rational r) {  //减法运算
    int a=r.getNumerator();
    int b=r.getDenominator();
    int newNumerator=numerator*b-denominator*a;
    int newDenominator=denominator*b;
    Rational result=new Rational(); 
    result.setNumerator(newNumerator);
    result.setDenominator(newDenominator);
    return result;
   }
   Rational muti(Rational r) { //乘法运算
     int a=r.getNumerator();
     int b=r.getDenominator();
     int newNumerator=numerator*a;
     int newDenominator=denominator*b;
     Rational result=new Rational(); 
     result.setNumerator(newNumerator);
     result.setDenominator(newDenominator);
     return result;
   }
   Rational div(Rational r)  { //除法运算
     int a=r.getNumerator();
     int b=r.getDenominator();
     int newNumerator=numerator*b;
     int newDenominator=denominator*a;
     Rational result=new Rational(); 
     result.setNumerator(newNumerator);
     result.setDenominator(newDenominator);
     return result;
  }
}


